perm filename TEST.PAS[AL,HE] blob sn#736544 filedate 1983-12-31 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	program al
C00006 ENDMK
C⊗;
program al;

type

msgtypes = (initarmscmd,calibcmd,killarmscmd,wherecmd,
	    abortcmd,stopcmd,movehdrcmd,movesegcmd,
	    centercmd,operatecmd,movedonecmd,signalcmd,
	    setccmd,forcesigcmd,forceoffcmd,biasoncmd,biasoffcmd,setstiffcmd,
	    zerowristcmd,wristcmd,gathercmd,getgathercmd,readadccmd,writedaccmd,
	    errorcmd,floatcmd,setloadcmd,
	    armmagiccmd,realcmd,vectorcmd,transcmd);

errortypes = (noerror,noarmsol,timerr,durerr,toolong,featna,
	      unkmess,srvdead,adcdead,nozind,exjtfc,paslim,nopower,badpot,devbusy,
	      baddev,timout,panicb,nocart,cbound,badparm);

event = record i,j,k: integer end;
eventp = ↑event;

message = record
	   ok: boolean;
	   cmd: msgtypes;
	   dev: integer;
	   bits: integer;
	   n: integer;	
(*	   dev, bits, n, evt: integer;		(* for arm code version *)
	   evt: eventp;
           dur: real;
	   case integer of
	   1: (v1: real;
		v2: real;
		v3: real;
		t: array [1..12] of real);
	   2: (sfac: real;
		wobble: real;
		pos: real);
           3: (val: real;
		angle: real;
		mag: real);
           4: (error: errortypes);	
	  end;

var escflg, timflg: boolean;
    curtime,i: integer;
    msg: message;
    msgp: ↑message;
    c: msgtypes; e: errortypes; r: real; ev: eventp; b: boolean;

procedure foo;
 begin
 i := 123;
 b := msg.ok;
 c := msg.cmd;
 i := msg.dev;
 i := msg.bits;
 i := msg.n;
 ev := msg.evt;
 r := msg.dur;
 e := msg.error;
 r := msg.v1;
 r := msg.sfac;
 r := msg.val;
 r := msg.v2;
 r := msg.wobble;
 r := msg.angle;
 r := msg.v3;
 r := msg.pos;
 r := msg.mag;
 r := msg.t[1];
 r := msg.t[2];
 r := msg.t[11];
 r := msg.t[12];
 r := msg.t[i];

 new(msgp);
 with msgp↑ do
  begin
  dev := 1;
  dur := 3.14;
  t[2] := 10.0;
  b := ok;
  c := cmd;
  i := dev;
  i := bits;
  i := n;
  ev := evt;
  r := dur;
  e := error;
  r := v1;
  r := sfac;
  r := val;
  r := v2;
  r := wobble;
  r := angle;
  r := v3;
  r := pos;
  r := mag;
  r := t[1];
  r := t[2];
  r := t[11];
  r := t[12];
  r := t[i];
  end;
 end;

begin
i:=123;
foo;
end.